package com.example.cloudmusic.utils

import android.graphics.Rect
import android.view.View
import androidx.recyclerview.widget.RecyclerView

/**
 * 网格布局装饰器，用于在网格布局中的项目之间添加间距
 */
class GridItemDecoration(
    private val horizontalSpacing: Int, // 水平间距（列间距）
    private val verticalSpacing: Int,   // 垂直间距（行间距）
    private val rowsPerColumn: Int      // 每列的行数
) : RecyclerView.ItemDecoration() {

    override fun getItemOffsets(
        outRect: Rect,
        view: View,
        parent: RecyclerView,
        state: RecyclerView.State
    ) {
        val position = parent.getChildAdapterPosition(view)
        if (position < 0) return // 无效位置
        
        // 计算所在的列和行
        val column = position / rowsPerColumn
        val row = position % rowsPerColumn
        
        // 设置右边距，为每列添加水平间距
        outRect.right = horizontalSpacing
        
        // 设置底部边距，为每行添加垂直间距（最后一行不需要底部边距）
        if (row < rowsPerColumn - 1) {
            outRect.bottom = verticalSpacing
        }
        
        // 可选：为第一列添加左边距
        if (column == 0) {
            outRect.left = horizontalSpacing / 2
        }
    }
} 